#include "magnetic.h"

#include "stm8l15x_gpio.h"

u8 turns = 0;

void Magnetic_Initialize()
{
    GPIO_Init(GPIOB, GPIO_Pin_0, GPIO_Mode_In_PU_IT);
    GPIO_Init(GPIOB, GPIO_Pin_1, GPIO_Mode_Out_PP_Low_Slow);
}

void Magnetic_SetEnable(bool enable)
{
    if (enable)
        GPIO_SetBits(GPIOB, GPIO_Pin_1);
    else
        GPIO_ResetBits(GPIOB, GPIO_Pin_1);
}

u8 Magnetic_GetTurns()
{
    return turns;
}

void Magnetic_ResetTurns()
{
    turns = 0;
}

/**
  * @brief External IT PIN0 Interrupt routine.
  * @par Parameters:
  * None
  * @retval
  * None
  */
INTERRUPT_HANDLER(EXTI0_IRQHandler, 8)
{
    turns++;
    EXTI_ClearITPendingBit (EXTI_IT_Pin0);
}